// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

import Echarts from 'echarts'

Vue.prototype.$echarts = Echarts
// Vue.prototype.echarts = Echarts
// Vue.use(Echarts)

// 引入axios，并加到原型链中
import axios from 'axios'
import { VueAxios } from './api/request'

Vue.prototype.$axios = axios
import QS from 'qs'

Vue.prototype.qs = QS
Vue.use(VueAxios)


import 'amfe-flexible/index.js'
// import '@/rem/rem.js'
// import './rem/rem.js'

import Vant from 'vant'
import 'vant/lib/index.css'


// 加载进度条
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({
  easing: 'ease',  // 动画方式
  speed: 500,  // 递增进度条的速度
  showSpinner: false, // 是否显示加载ico
  trickleSpeed: 200, // 自动递增间隔
  minimum: 0.3 // 初始化时的最小百分比
})

//  导航守卫

//  router.beforeEach((to, from, next) => {
//    let token = localStorage.getItem('mytoken')
//    // 如果已经登录，那我不干涉你，让你随便访问
//    if (token) {
//      next()
//    } else {
//      if (to.path !== '/login') {
//        // 如果没有登录，但你访问其他需要登录的页面，那我就让你跳到登录页面去
//        next({path: '/login'})
//      } else {
//        // 如果没有登录，但你访问的login，那就不干涉你，让你访问
//        next()
//      }
//    }
//  })


Vue.use(Vant)


Vue.config.productionTip = false


router.beforeEach((to, from, next) => {
  // 如果已经登录，那我不干涉你，让你随便访问
  let token = localStorage.getItem('mytoken')
  if (token) {
    next()
  } else {
    if (to.path !== '/login' && to.path !== '/Passwordlogin') {
      console.log('哈哈被我拦截了')
      // 如果没有登录，但你访问其他需要登录的页面，那我就让你跳到登录页面去
      next({ path: '/login' })
    } else {
      next()
    }
  }
  // 每次切换页面时，调用进度条
  NProgress.start()
  /* 路由发生变化修改页面title */
  if (to.meta.title) {
    document.title = to.meta.title
  }
  // 这个一定要加，没有next()页面不会跳转的。这部分还不清楚的去翻一下官网就明白了
  next()
})

//当路由进入后：关闭进度条
router.afterEach(() => {
  // 在即将进入新的页面组件前，关闭掉进度条
  NProgress.done()
})

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  // store, //store:store 和router一样，将我们创建的Vuex实例挂载到这个vue实例中
  components: { App },
  template: '<App/>'
})
